/**
 * Copyright (c) 2020 libinbin000
 * SFrame is licensed under the Mulan PSL v1.
 * You can use this software according to the terms and conditions of the Mulan PSL v1.
 * You may obtain a copy of Mulan PSL v1 at:
 *     http://license.coscl.org.cn/MulanPSL
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
 * PURPOSE.
 * See the Mulan PSL v1 for more details.
 */

import * as WebSocket from "ws";
import {Server} from "ws";
import {Connect} from "./Connect";

export class WSServer {
    private server:Server;

    run(port){
        this.server = new Server({port:port});
        this.server.on("connection", this.onConnection);
        this.server.on("error", this.onError);
        this.server.on("listening", this.onListening);
        this.server.on("close", this.onClose);
    }

    stop(){
        this.server.close();
    }

    onClose() {
    }

    onListening() {
    }

    onError(error: Error) {
        console.log("socket 错误" + error.message);
    }

    onConnection(socket: WebSocket) {
        Connect.create(socket);
    }
}

